package com.hejjon.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hejjon.core.domain.entity.SysMenu;
import com.hejjon.core.domain.vo.MenuVO;

import java.util.List;
import java.util.Map;

/**
 * @author: cs
 * @date: 2024-12-20 12:38:12
 * @since: 1.0
 */
public interface ISysMenuService extends IService<SysMenu> {

    /**
     * 校验菜单名称和显示名称 是否重复
     * @param menuName
     * @param menuText
     * @return
     */
    boolean checkNameAndTextUnique(String menuName, String menuText);


    int add(SysMenu sysMenu);


    /**
     * 查询顶部导航菜单项
     * @return
     */
    List<MenuVO> findTopNavMenuList();


    /**
     * 根据顶部导航菜单id (parentId) 查询侧边栏菜单(树)
     * @param parentId
     * @return
     */
    List<MenuVO> findSubMenusByParentId(String parentId);


    /**
     * 获取菜单数据
     * 返回一个 map集合, key为顶部菜单的name属性, value为对应侧边栏菜单的列表
     * @return
     */
    Map<String, List<MenuVO>> getMunuData();


    /**
     *
     * @param searchParam
     * @return
     */
    List<MenuVO> getMenuVoList(String searchParam);


    /**
     * 批量删除菜单
     * @param ids
     * @return
     */
    boolean removeByIds(List<String> ids);

}
